var mongoose = require('mongoose');
var Schema = mongoose.Schema
var ObjectId = Schema.Types.ObjectId
var CategorySchema = new Schema({
  name: String,
  movies: [{
    type: ObjectId,
    ref: 'Movie'
  }],
  meta: {
    createAt:{
      type: Date,
      default: Date.now()  //创建时候的时间
    },
    updateAt: {
      type:Date,
      default: Date.now()  //更新时候的时间
    }
  }
})

//为模式添加save方法
CategorySchema.pre('save', function(next){
  if (this.isNew){//判断是不是新加的数据 是的话更新为当前时间
    this.meta.createAt = this.meta.updateAt = Date.now()
  }
  else {
    this.meta.updateAt = Date.now()
  }
  next()
})

CategorySchema.statics = {
  fetch: function(cb){
    //取出数据库所有的数据,按更新时间排序,执行回调方法
    return this.find({}).sort('meta.updateAt').exec(cb)
  },
  findById: function(id, cb){
    //查询单条数据
    return this.findOne({_id: id}).exec(cb)
  }
}

module.exports = CategorySchema
